﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sistema_Totem.Logica.Clases;
using System.Data;

namespace Sistema_Totem.Vista.Involucrados
{
    public partial class ModificarInvolucrado : System.Web.UI.Page
    {
        int IdUsuario = 0;
        List<Rol> listaRol = new List<Rol>();
        protected void Page_Load(object sender, EventArgs e)
        {
            //if (Session["tipo_usuario"].ToString() != "Analista")
            //{
            //    Response.Redirect("Login1.aspx");
            //}

            //if (Session["tipo_usuario"].ToString() != "Gerente")
            //{
            //    Response.Redirect("Login1.aspx");
            //}

            //if (Session["tipo_usuario"].ToString() != "Administrador")
            //{
            //    Response.Redirect("Login1.aspx");
            //}

            if (!IsPostBack)
            {
                this.CargarLabel();
            }
            this.CargarRolInvolucrado();
        }

        public void CargarLabel()
        {
            Involucrado involucrado = new Involucrado();
            involucrado = (Involucrado)Session["involucrado"];
            // seteamos cada valor pasado por parametros de la vista anteorior
            this.TextNombre.Text = involucrado.Nombre;
            this.TextTelefono.Text = involucrado.Telefono;
            this.TextCorreo.Text = involucrado.Correo;
            this.TextRol.Text = involucrado.Rol.Nombre;
            Session["id"] = involucrado.Id;
        }
        public void Actualizar(object sender, EventArgs e)
        {
            Involucrado involucrado = new Involucrado();
            involucrado.Id = (int)Session["id"];
            involucrado.Nombre = this.TextNombre.Text;
            involucrado.Telefono = this.TextTelefono.Text;
            involucrado.Correo = this.TextCorreo.Text;
            String nombreRol = this.TextRol.Text;
            if (nombreRol != this.ComboRol.SelectedItem.Text)
            {
                involucrado.Rol.Nombre = this.ComboRol.SelectedItem.Text;
            }
            else
                involucrado.Rol.Nombre = this.TextRol.Text;

            // buscamos el ID del rol
            involucrado.Rol.Id = BuscarSelecionRol(involucrado.Rol.Nombre);
            // le pasamos el objeto del tipo usuario al metodo Modificar
            int idRetornado = involucrado.ModificarInvolucrado(involucrado);
            if (idRetornado != 0)
                Mensaje(1);
            else
                Mensaje(0);
            // invocamos al metodo InhabilitarAtributos
            InhabilitarAtributos();
        }

        // cargamos el comboBox por defecto
        public void CargarRolInvolucrado()
        {
            Rol rol = new Rol();
            listaRol = rol.ListaRoles();
            foreach (Rol roles in listaRol)
            {
                if ((roles.TipoRol == "Cliente") || (roles.TipoRol == "cliente"))
                {
                    this.ComboRol.Items.Add(roles.Nombre);
                }
            }

        }

        public int BuscarSelecionRol(String nombreRol)
        {
            int idRol = 0;
            foreach (Rol roles in listaRol)
            {
                if (roles.Nombre == nombreRol)
                    idRol = roles.Id;
            }

            return idRol;
        }

        public void InhabilitarAtributos()
        {
            this.TextNombre.Enabled = false;
            this.TextTelefono.Enabled = false;
            this.TextCorreo.Enabled = false;
            this.TextRol.Enabled = false;
            this.ComboRol.Enabled = false;
        }
        public void Mensaje(int valorMensaje)
        {
            if (valorMensaje == 1)
            {
                MensajeDeTransaccion.Text = "El Involucrado se Modifico con exito";

                MensajeDeTransaccion.Visible = true;

            }
            else
            {
                if (valorMensaje == 0)
                {
                    MensajeDeTransaccion.Text = "Operacion Fallida";

                    MensajeDeTransaccion.Visible = true;
                }
            }
        }
        public void Regresar(object sender, EventArgs e)
        {
            // Redireccionamos a la pagina del consultarUsuario
            Response.Redirect("../Involucrados/ListarModificarInvolucrado.aspx");
        }
    }
}